約 2,212,921 件
https://w.atwiki.jp/scriptuploader/pages/15.html
Script uploader https //img.atwiki.jp/scriptuploader/attach/15/11/doodstream.site.js
https://w.atwiki.jp/nogyo/pages/33.html
THREAD_CHECK なんとなく公開してみる THREAD_CHECK http //2se.dyndns.org/test2/phps/thread_check.phps なんとなく公開してみる http //syoboon.asks.jp/63837.html syoboon.net http //syoboon.net/
https://w.atwiki.jp/vpvpwiki/pages/288.html
MMD周辺ライブラリ アプリケーション製作時に有用な、汎用性のあるプログラム部品について。 ※ ツール・アプリケーション本体、及びアプリケーションを選ぶ類のライブラリ(プラグイン)は別ページで。 .NETMMF(Miku Miku Flex) SlimDX C++Bullet DXライブラリ MeshIO MikuMikuPenguin (MMP) libvpvl JavaTogaGem MMDLoaderJME WebGL (JavaScript)three.js MMD.js enchant.js jThree.MMD.js RubyMMD on Ruby UnityMMD4Mecanim MikuMikuDance for Unity 終了したプラットフォームMicrosoft XNA(.NET2.0)MMDX version2(旧 MikuMikuDance for XNA) MMDモデル(.pmd)コンテンツパイプライン マルチプラットフォームNyMmd DLLインジェクション/APIフックMMaccel MMD Bridge フォーマット樋口M氏による、MMDのIK処理ソースコード断片IKについて レンダリング ユーザーによるMMD独自形式のフォーマット解析モデル(XX、PMD) モデル(PMX) モーション(VMD) プロジェクトデータ(PMM) MME PMDエディタ その他 .NET MMF(Miku Miku Flex) 本家 (開発停止) 派生版 MMD、MMEの仕様を満たすモデル、エフェクトの表示などをするオープンでフリーなライブラリです。一度開発が停止したものの、別の開発者が引き継ぎ開発を継続中。 DirectX11上で動作 旧名 Miku Miku Dance Drawer library(MMDD) 紹介動画 +開発停止中 SlimDX https //github.com/SlimDX/slimdx .NET環境でDirectXを利用するためのライブラリした。開発停止しており、Direct3D 11.1以降にまだ対応していません。 PMDEditorが利用。 C++ Bullet http //www.bulletphysics.org/ MMDやBlender、GTAIVが利用している物理演算ライブラリ。 DXライブラリ DXライブラリ 関数リファレンスページ>3D関係関数リファレンス 「3Dモデル関係の関数」>「モデルの読み込み・複製関係の関数」の項目でMMD関連ファイルを扱っています 読み込むことのできるモデルファイル形式は x, mqo, mv1, pmd( + vmd ), pmx( + vmd ) の4種類です。( 但し、pmx は pmd 相当の機能だけを使用していた場合のみ正常に読み込める仮対応状態です ) MMD( MikuMikuDance )のモデルファイル( pmd or pmx )とモーションファイル( vmd )について。 <対応度について> 一応モーションの再生と取れに伴うIK、物理演算に対応していますが、完全に本家 MikuMikuDance と同じというわけではありません。 超国営バトーキン場バトーキン氏、DXライブラリを使って自プログラムを開発したときの、メモ書きあり。 +開発停止中 MeshIO http //meshio.osdn.jp/ pmd, vmd, mqoの読み書きライブラリ MikuMikuPenguin (MMP) 開発者ブロマガ github MMDモデル表示ライブラリ 2014/11/17に開発終了 紹介動画 libvpvl http //blog.hikarin.jp/ https //github.com/hkrn/MMDAI/wiki/libvpvl MMDAI2の開発者によるC++ライブラリ。MMDAI2の終了に伴い、開発停止中。 Java +開発停止中 TogaGem http //mikutoga.osdn.jp/togagem.html PMDやVMDのファイルパーサライブラリなど。 コンバータPmd2XMLやVmd2XMLの下請け。 MMDLoaderJME [https //osdn.net/projects/mikumikustudio/ https //osdn.net/projects/mikumikustudio/]] JavaでMikuMikuDanceのファイルの読み込み、表示を行うライブラリ。 MikuMikuStudioの作者によるライブラリ。 WebGL (JavaScript) ウェブブラウザで3次元コンピュータグラフィックスを表示させるための標準仕様。 技術的には、JavaScriptとネイティブのOpenGL ES 2.0のバインディングである。 (Wikipediaより引用) three.js https //threejs.org/ GitHub デモページ:MMDLoader test +開発停止中 WebGL 1.0までしか対応しないものなど。 MMD.js edvakf/MMD.js · GitHubソース edvakf氏ブログ(関連記事あり) デモページ:MMD on WebGL enchant.js enchant.js PMDやVMDを使うためのプラグイン、mmd.gl.enchant.js を公開。 jThree.MMD.js jThree MMDをウェブ上に公開するjQueryプラグイン jThree.MMD.jsプラグイン自体がmmd.three.jsを開発者katwat氏の協力の元でjThree用にカスタマイズしたものソース 現在jThree.jsは廃止され、後継のGrimoire.jsが開発中となっている。 Ruby +開発停止中 MMD on Ruby MMD on Ruby紹介ページ(?) Unity MMD4Mecanim http //stereoarts.jp/ Nora氏によるMMDをUnity で使えるようにするツール。 PMX(PMD) + VMD を FBX に変換するツール & Unity (Mecanim) で一通り動作させるためのスクリプトです。 Bullet Physics をサポートしています。 +開発停止中 MikuMikuDance for Unity MikuMikuDanceをゲームエンジンの一つでもあるUnity上で動作させるためのライブラリです。 →MikuMikuDance_for_Unityにまとめました GitHub 終了したプラットフォーム +Microsoft XNA(~2014年) Microsoft XNA(.NET2.0) XNAは2014年にMicrosoftが開発終了している。 MMDX version2(旧 MikuMikuDance for XNA) http //sourceforge.jp/projects/mmdx/ モデル、モーションの読み込み。アニメーションの表示 作者のブログゆるアマクリエイターの日記 MMDモデル(.pmd)コンテンツパイプライン とあるPGの研究記録Ⅱ>XNAライブラリ/ツール一覧 モデルデータ読み込み。開発終了 マルチプラットフォーム +開発停止中 NyMmd http //code.google.com/p/nymmd/ PMDモデルファイルの読み込みと、VMDモーションの再生が可能なクラスライブラリ。 Java/C#対応。 DLLインジェクション/APIフック プラグイン機構の無いMMDでは、機能拡張のためにコードインジェクションが必要となります。コードインジェクションは、MMEでも使われている一般的な手法です。 MMaccel https //github.com/LNSEAB/mmaccel ライセンス https //github.com/LNSEAB/mmaccel/blob/master/mmaccel_readme.txt MMD Bridge https //github.com/uimac/mmdbridge MITライセンス。 フォーマット 樋口M氏による、MMDのIK処理ソースコード断片 2012/5/15現在、公開終了? http //www.geocities.jp/higuchuu4/ik.zip (PMD版?) http //www.geocities.jp/higuchuu4/ikx.zip (PMX版?) IKについて ボーンに「ひざ」と名前がつくと、X 軸方向にしか曲がらない(英語だとkneeが対応すると思われる。) はてなブログ edvakf氏 MMD on WebGL 踊れるようになった(あと IK について)(2011-11-02) レンダリング 透明な材質の奥ではエッジを描画しない。 材質 透明度0.98でその材質のみシャドウを落とさない。 ユーザーによるMMD独自形式のフォーマット解析 モデル(XX、PMD) 通りすがりの記憶>MMDのモデルデータ(PMD)形式 めも (まとめ) MMDのモデルデータについて語るスレ(2008/08/30-2009/06/21)MMDのモデルデータについて語るスレ Part 2(2009/05/31-2010/08/28) Olyutorskii’s shack>PMDファイル構造のUML化(改訂2稿)(2012/06/27) モデル(PMX) PMXのフォーマットは公開されています。PMDエディタに同梱のファイルをご覧ください。(商用利用についても言及あり)参考ページ:PMDエディタの使い方/Version情報 MikuMikuDance/PMXの概要 Olyutorskii’s shack>PMXファイル構造のUML化(改訂2稿)(2012/06/27) モーション(VMD) 通りすがりの記憶 2010-02-20 MMDのモーションデータ(VMD)形式 めも 寝不足でつ インドカレー氏 VMDファイルフォーマット Yumin Space 【MMD】VMDConverter モーションファイル変換ツール公開しました。 針金のブログ 針金P 2011/03/02VMDメモ…VMDの内部フォーマットを自己解析してみました とある工房 極北P 2013年06月07日 MMD7.40以降のVMDの変更内容に関して0219 はてなブログ edvakf MMD on WebGL カメラとライトと表情のモーションに対応(あと補間曲線について)…補間曲線に使われているベジエ曲線の計算式など プロジェクトデータ(PMM) skydrive そぼろ氏 pmm解析中 Google Drive 魚圭糸工氏 Pmmフォーマット解析 推定構造 MME MikuMikuEffectで学ぶHLSL入門(舞力介入P、ビームマンP) MMD関連プログラミングスレ>樋口氏(M、MMD開発者)と舞力介入P(MME開発者)のMME導入のやりとり PMDエディタ ザック・マイルド氏 PMDE プラグイン クラス図-PMX(2012/07/16) PMDE_Plugin astah* プロジェクトファイル(2012年07月16日) PMDE_Plugin astah* プロジェクトファイル(2012年07月18日) その他 wiki内 MikuMikuDance/拡張子…MMDに関わる拡張子情報 MikuMikuDance/PMXの概要 外部リンク frivolouslife>プログラム…MMDと同じようにモデル・モーションを出力する試行錯誤の日記。関連記事は「はじめての DirectX 」で統一されている。 みくだん>MMD基準モデルフォーマット、PMD/PMXについて プロジェクト 初音の未来プログラマ向け情報へのリンク 名前 コメント
https://w.atwiki.jp/fxext/pages/59.html
Firefox75時点での内容 resource //gre/modules/PlacesTransactions.jsm ファイル冒頭の説明文の翻訳概要 GUIDとアイテムIDに関する注意 トランザクションの構築 トランザクションの実行(トランザクションの | transact | メソッド) バッチ シリアル化 トランザクション履歴の構造 メソッド / プロパティ コンストラクター ファイル冒頭の説明文の翻訳 ※機械翻訳を少し手直ししただけなので、意味が分かりにくい所がある。 概要 * Overview * -------- * This modules serves as the transactions manager for Places (hereinafter PTM). * It implements all the elementary transactions for its UI commands creating * items, editing their various properties, and so forth. このモジュールは、Placesのトランザクションマネージャー(以降、PTM)として機能します。 アイテムの作成、さまざまなプロパティの編集など、UIコマンドのすべての基本的なトランザクションを実装します。 * Note that since the effect of invoking a Places command is not limited to the * window in which it was performed (e.g. a folder created in the Library may be * the parent of a bookmark created in some browser window), PTM is a singleton. * It s therefore unnecessary to initialize PTM in any way apart importing this * module. Placesコマンドの呼び出しの効果は、コマンドが実行されたウィンドウに限定されないため(たとえば、ライブラリで作成されたフォルダは、ブラウザウィンドウで作成されたブックマークの親である場合があります)、PTMはシングルトンです。 したがって、このモジュールのインポートとは別に、PTMを初期化する必要はありません。 * PTM shares most of its semantics with common command pattern implementations. * However, the asynchronous design of contemporary and future APIs, combined * with the commitment to serialize all UI operations, does make things a little * bit different. For example, when |undo| is called in order to undo the top * undo entry, the caller cannot tell for sure what entry would it be, because * the execution of some transactions is either in process, or enqueued to be. PTMは、そのセマンティクスのほとんどを一般的なコマンドパターン実装と共有しています。 ただし、現代と将来のAPIの非同期設計と、すべてのUI操作のシリアル化への取り組みにより、状況は少し異なります。 たとえば、| undo | は「元に戻す」エントリのトップを元に戻すために呼ばれますが、呼び出し元はそのエントリが本当にそうであるかを確実には判断できません。一部のトランザクションの実行が処理中であるか、処理待ちになっているかもしれないためです。 * Also note that unlike the nsITransactionManager, for example, this API is by * no means generic. That is, it cannot be used to execute anything but the * elementary transactions implemented here (Please file a bug if you find * anything uncovered). More-complex transactions (e.g. creating a folder and * moving a bookmark into it) may be implemented as a batch (see below). また、例えば nsITransactionManager とは異なり、このAPIは決して汎用なものではありません。 つまり、ここで実装された基本的なトランザクション以外の実行には使用できません(カバーされていないものを見つけたら、バグを報告してください)。 より複合的なトランザクション(例:フォルダーを作成してそこにブックマークを移動する)は、バッチとして実装できます(以下を参照)。 GUIDとアイテムIDに関する注意 * A note about GUIDs and item-ids * ------------------------------- * There s an ongoing effort (see bug 1071511) to deprecate item-ids in Places * in favor of GUIDs. Both because new APIs (e.g. Bookmark.jsm) expose them to * the minimum necessary, and because GUIDs play much better with implementing * |redo|, this API doesn t support item-ids at all, and only accepts bookmark * GUIDs, both for input (e.g. for setting the parent folder for a new bookmark) * and for output (when the GUID for such a bookmark is propagated). GUIDを優先してPlacesのitem-idを廃止するための継続的な取り組みがあります(バグ1071511を参照)。 新しいAPI(たとえば、Bookmark.jsm)が必要最低限のAPIを公開していること、およびGUIDが| redo |の実装ではるかに優れているため、このAPIは入力(例えば、新しいブックマークの親フォルダ設定)および出力(作られたブックマークを伝える時)の両方でitem-idをまったくサポートせず、ブックマークGUIDのみを受け入れます。 * Should you need to convert GUIDs to item-ids, use PlacesUtils.promiseItemId. GUIDをitem-idに変換する必要がある場合は、PlacesUtils.promiseItemIdを使用します。 トランザクションの構築 * Constructing transactions * ------------------------- * At the bottom of this module you will find transactions for all Places UI * commands. They are exposed as constructors set on the PlacesTransactions * object (e.g. PlacesTransactions.NewFolder). The input for this constructors * is taken in the form of a single argument, a plain object consisting of the * properties for the transaction. Input properties may be either required or * optional (for example, |keyword| is required for the EditKeyword transaction, * but optional for the NewBookmark transaction). このモジュールの下部には、全てのPlacesUIコマンドのトランザクションがあります。 これらは、PlacesTransactionsオブジェクトに設定されたコンストラクター(例:PlacesTransactions.NewFolder)として公開されます。 このコンストラクタの入力は、トランザクションのプロパティで構成されるプレーンオブジェクトである単一の引数の形式で取得されます。 入力プロパティは必須またはオプションのいずれかです(たとえば、| keyword |はEditKeywordトランザクションでは必須ですが、NewBookmarkトランザクションではオプションです)。 ※プレーンオブジェクトとは https //www.atmarkit.co.jp/ait/articles/1008/27/news118_4.html new Object、または「{……}」の形式(オブジェクト・リテラルの形式)で作られたオブジェクト * To make things simple, a given input property has the same basic meaning and * valid values across all transactions which accept it in the input object. * Here is a list of all supported input properties along with their expected * values * - url a URL object, an nsIURI object, or a href. * - urls an array of urls, as above. * - tag - a string. * - tags an array of strings. * - guid, parentGuid, newParentGuid a valid Places GUID string. * - guids an array of valid Places GUID strings. * - title a string * - index, newIndex the position of an item in its containing folder, * starting from 0. * integer and PlacesUtils.bookmarks.DEFAULT_INDEX 物事を簡単にするために、特定の入力プロパティは、入力オブジェクトでそれを受け入れるすべてのトランザクションにわたって同じ基本的な意味と有効な値を持っています。 サポートされているすべての入力プロパティとその期待値のリストを次に示します。 url:URLオブジェクト、nsIURIオブジェクト、またはhref。 urls:上記のようなurlの配列。 tag:文字列。 tags:文字列の配列。 guid、parentGuid、newParentGuid:有効なPlaces GUID文字列。 guids:有効なPlaces GUID文字列の配列。 title:文字列 index、newIndex:0から始まる、それを含むフォルダー内のアイテムの位置。整数とPlacesUtils.bookmarks.DEFAULT_INDEX * If a required property is missing in the input object (e.g. not specifying * parentGuid for NewBookmark), or if the value for any of the input properties * is invalid "on the surface" (e.g. a numeric value for GUID, or a string that * isn t 12-characters long), the transaction constructor throws right way. * More complex errors (e.g. passing a non-existent GUID for parentGuid) only * reveal once the transaction is executed. 入力オブジェクトに必要なプロパティがない(例:NewBookmarkにparentGuidを指定していない)場合や、いずれかの入力プロパティの値が「表面上」で無効(例:GUIDが12文字長ではない)な場合、トランザクションコンストラクターは適切にスロー(例外エラー)します。 より複雑なエラー(たとえば、parentGuidに存在しないGUIDを渡すなど)は、トランザクションが実行されると明らかになります。 トランザクションの実行(トランザクションの | transact | メソッド) * Executing Transactions (the |transact| method of transactions) * -------------------------------------------------------------- * Once a transaction is created, you must call its |transact| method for it to * be executed and take effect. |transact| is an asynchronous method that takes * no arguments, and returns a promise that resolves once the transaction is * executed. Executing one of the transactions for creating items (NewBookmark, * NewFolder, NewSeparator) resolve to the new item s GUID. * There s no resolution value for other transactions. * If a transaction fails to execute, |transact| rejects and the transactions * history is not affected. トランザクションが作成されたら、実行して有効にするための関数 | transact | を呼び出す必要があります。 | transact | は引数を取らない非同期メソッドであり、トランザクションが実行されると解決する promise を返します。 アイテムを作成するためのトランザクション(NewBookmark、NewFolder、NewSeparator)の1つを実行すると、新しいアイテムのGUIDが resolve 値になります。 他のトランザクションに resolve 値はありません。 トランザクションの実行に失敗した場合、| transact | は reject され、トランザクション履歴は影響を受けません。 * |transact| throws if it s called more than once (successfully or not) on the * same transaction object. | transact | が同じトランザクションオブジェクトで2回以上呼び出された場合(成功したかどうかに関係なく)スロー(例外エラー)します。 バッチ * Batches * ------- * Sometimes it is useful to "batch" or "merge" transactions. For example, * something like "Bookmark All Tabs" may be implemented as one NewFolder * transaction followed by numerous NewBookmark transactions - all to be undone * or redone in a single undo or redo command. Use |PlacesTransactions.batch| * in such cases. It can take either an array of transactions which will be * executed in the given order and later be treated a a single entry in the * transactions history, or a generator function that is passed to Task.spawn, * that is to "contain" the batch once the generator function is called a batch * starts, and it lasts until the asynchronous generator iteration is complete * All transactions executed by |transact| during this time are to be treated as * a single entry in the transactions history. トランザクションを「バッチ」または「マージ」すると便利な場合があります。 たとえば、「すべてのタブをブックマークする」のようなものは、1つのNewFolderトランザクションとそれに続く多数のNewBookmarkトランザクションとして実装できます。すべてを1つの元に戻すまたはやり直しコマンドで元に戻したりやり直したりできます。 そのような場合、| PlacesTransactions.batch | を使用します。 それの引数には、指定された順序で実行され、後でトランザクション履歴の単一のエントリとして処理されるトランザクションの配列、またはバッチを「含む」ためにTask.spawnに渡されるジェネレーター関数を使用できます。ジェネレーター関数はバッチ開始時に呼ばれ、非同期ジェネレーターの反復が完了するまで続きます。この間 | transact | によって実行されるすべてのトランザクションがトランザクション履歴では単一のエントリとして扱われます。 * In both modes, |PlacesTransactions.batch| returns a promise that is to be * resolved when the batch ends. In the array-input mode, there s no resolution * value. In the generator mode, the resolution value is whatever the generator * function returned (the semantics are the same as in Task.spawn, basically). 両方のモードで、| PlacesTransactions.batch | バッチの終了時に解決されるpromiseを返します。 配列入力モードでは、resolve 値はありません。 ジェネレーターモードでは、resolve 値はジェネレーター関数が返すものです(セマンティクスは基本的にTask.spawnと同じです)。 * The array-input mode of |PlacesTransactions.batch| is useful for implementing * a batch of mostly-independent transaction (for example, |paste| into a folder * can be implemented as a batch of multiple NewBookmark transactions). * The generator mode is useful when the resolution value of executing one * transaction is the input of one more subsequent transaction. | PlacesTransactions.batch | の配列入力モードは、ほとんど独立したトランザクションのバッチを実装するのに便利です(たとえば、フォルダー内への | paste | は複数のNewBookmarkトランザクションのバッチとして実装できます)。 ジェネレーターモードは、1つのトランザクションの実行の resolve 値が1つ以上の後続のトランザクションの入力である場合に役立ちます。 * In the array-input mode, if any transactions fails to execute, the batch * continues (exceptions are logged). Only transactions that were executed * successfully are added to the transactions history. 配列入力モードでは、トランザクションの実行に失敗した場合、バッチが続行されます(例外がログに記録されます)。 正常に実行されたトランザクションのみがトランザクション履歴に追加されます。 * WARNING "nested" batches are not supported, if you call batch while another * batch is still running, the new batch is enqueued with all other PTM work * and thus not run until the running batch ends. The same goes for undo, redo * and clearTransactionsHistory (note batches cannot be done partially, meaning * undo and redo calls that during a batch are just enqueued). 警告:「ネストされた」バッチはサポートされていません。別のバッチの実行中にバッチを呼び出すと、新しいバッチは他のすべてのPTM作業と共にキューに入れられ、実行中のバッチが終了するまで実行されません。 同じことは、取り消し、やり直し、およびトランザクション履歴消去にも当てはまります(バッチは部分的に実行できないことに注意してください。つまり、バッチ中の取り消しややり直しの呼び出しは、ただキューに入れるだけということを意味します)。 * ***************************************************************************** * IT S PARTICULARLY IMPORTANT NOT TO await ANY PROMISE RETURNED BY ANY OF * THESE METHODS (undo, redo, clearTransactionsHistory) FROM A BATCH FUNCTION. * UNTIL WE FIND A WAY TO THROW IN THAT CASE (SEE BUG 1091446) DOING SO WILL * COMPLETELY BREAK PTM UNTIL SHUTDOWN, NOT ALLOWING THE EXECUTION OF ANY * TRANSACTION! * ***************************************************************************** 特に重要なのが、バッチ関数からこれらのメソッド(元に戻す、やり直し、トランザクション履歴消去)から返される promise をまったく「待たない(NOT TO await)」ことです。 そのような場合に対処する方法を見つけるまで(バグ1091446を参照)、シャットダウンするまでPTMを完全に停止し、トランザクションの実行を許可しません。 シリアル化 * Serialization * ------------- * All |PlacesTransaction| operations are serialized. That is, even though the * implementation is asynchronous, the order in which PlacesTransactions methods * is called does guarantee the order in which they are to be invoked. 全ての | PlacesTransaction | 操作はシリアル化されます。 つまり、実装が非同期であっても、PlacesTransactionsメソッドが呼び出される順序は、それらが実行される順序を保証します。 * The only exception to this rule is |transact| calls done during a batch (see * above). |transact| calls are serialized with each other (and with undo, redo * and clearTransactionsHistory), but they are, of course, not serialized with * batches. このルールの唯一の例外は、バッチ中の | transact | 呼び出しです。(上記を参照)。 | transact | 呼び出しは互いに(元に戻す、やり直し、およびトランザクション履歴消去も)シリアライズされますが、もちろん、バッチではシリアライズされません。 トランザクション履歴の構造 * The transactions-history structure * ---------------------------------- * The transactions-history is a two-dimensional stack of transactions the * transactions are ordered in reverse to the order they were committed. * It s two-dimensional because PTM allows batching transactions together for * the purpose of undo or redo (see Batches above). トランザクション履歴は、トランザクションの2次元スタックです。トランザクションは、コミットされた順序とは逆に順序付けられます。 2次元なのは、PTMでは、元に戻すまたはやり直しの為にトランザクションのバッチ処理を許可しているためです(上記のバッチを参照)。 * The undoPosition property is set to the index of the top entry. If there is * no entry at that index, there is nothing to undo. * Entries prior to undoPosition, if any, are redo entries, the first one being * the top redo entry. undoPositionプロパティは、トップエントリのインデックスに設定されます。 そのインデックスにエントリがない場合、元に戻すものは何もありません。 undoPositionより前のエントリは、もしあれば、それはredoエントリであり、最初のそれはトップredoエントリです。 * [ [2nd redo txn, 1st redo txn], = 2nd redo entry * [2nd redo txn, 1st redo txn], = 1st redo entry * [1st undo txn, 2nd undo txn], = 1st undo entry * [1st undo txn, 2nd undo txn] = 2nd undo entry ] * undoPostion 2. * * Note that when a new entry is created, all redo entries are removed. 新しいエントリが作成されると、すべてのredoエントリが削除されることに注意してください。 メソッド / プロパティ PlacesTransactions.batch(transactionsToBatch) 引数:トランザクションの配列 or ジェネレーター関数 返り値:promise (resolve値:なし or ジェネレータ関数の返り値) PlacesTransactions.undo() 返り値:promise (resolve値:なし) PlacesTransactions.redo() 返り値:promise (resolve値:なし) PlacesTransactions.clearTransactionsHistory(undoEntries = true, redoEntries = true) 引数:undo,redo履歴を削除するかの真偽値 返り値:promise (resolve値:なし) PlacesTransactions.length 履歴のエントリー数 PlacesTransactions.entry(index) 引数:履歴のindex(0以上length未満の整数) 返り値:トランザクションの配列(undo順、つまり実行順の逆順) PlacesTransactions.undoPosition undoのトップエントリーのindex PlacesTransactions.topUndoEntry undoのトップエントリー(トランザクションの配列) PlacesTransactions.topRedoEntry redoのトップエントリー(トランザクションの配列) コンストラクター コンストラクター 必須プロパティ オプションプロパティ PlacesTransactions.NewBookmark(properties) url, parentGuid index, title, keyword, tags PlacesTransactions.NewFolder(properties) title, parentGuid index, children PlacesTransactions.NewSeparator(properties) parentGuid index PlacesTransactions.Move(properties) guid, newParentGuid newIndex PlacesTransactions.EditTitle(properties) guid, title PlacesTransactions.EditUrl(properties) guid, url PlacesTransactions.EditKeyword(properties) guid, keyword postData, oldKeyword PlacesTransactions.SortByName(properties) guid PlacesTransactions.Remove(properties) guids PlacesTransactions.Tag(properties) urls, tags PlacesTransactions.Untag(properties) urls tags PlacesTransactions.RenameTag(properties) oldTag, tag PlacesTransactions.Copy(properties) guid, newParentGuid newIndex Untagはオプションのtagsを指定していない場合、urlsに設定されている全てのタグが削除される
https://w.atwiki.jp/aki-lyon/pages/24.html
myD = new Date(); myYear = myD.getYear(); myYear4 = (myYear 2000) ? myYear+1900 myYear; myMonth = myD.getMonth() + 1; myDate = myD.getDate(); myDay = myD.getDay(); monthdays = new Array(31,28,31,30,31,30,31,31,30,31,30,31); if(((myYear%4==0) (myYear%100==0))||(myYear%400==0)){ monthdays[1]=29; } switch(myDay){ case 0 myD.setDate(myD.getDate() - 6); break; case 1 myD.setDate(myD.getDate()); break; case 2 myD.setDate(myD.getDate() - 1); break; case 3 myD.setDate(myD.getDate() - 2); break; case 4 myD.setDate(myD.getDate() - 3); break; case 5 myD.setDate(myD.getDate() - 4); break; case 6 myD.setDate(myD.getDate() - 5); break; } document.write( 更新日: + myD.getFullYear() + 年 + (1 + myD.getMonth()) + 月 + myD.getDate() + 日 );
https://w.atwiki.jp/mopsprogramming/pages/156.html
Mopsで既に定義されて準備されているコードの基本単位は"ワード(word)"と呼ばれます。コンピュータ科学の方面には別の意味のワードも使われるので、はじめのうちは注意しないといけません。コンピュータ科学でのワードは機械の記憶の基本単位のことで、32ビットコンピュータなら32ビットで1ワード、64ビットコンピュータなら64ビット1ワードということです。MopsというかForth系一般ですが、そこでいうワードは、他のプログラミング言語でいう関数や手続というものに当たります。正式なコンピュータ用語(あるいはFortranとか)ではサブルーチン(subroutine)と呼ばれるものです。 サブルーチン では、サブルーチンってなんでしょう。ルーチン(routine)は"決まり切った作業"という意味で、それにサブ(sub 下位のとか副次的なという意味)がついたのが、この言葉の成り立ちです。サブがあれば、スーパーというかメイン(main 主要な)があるわけです。実際、メインルーチンというのもあります。メインルーチンは、プログラムの一番最初に実行されます。そして、適当に必要になったところで、サブルーチンを呼んで、必要な仕事の手助けをしてもらうわけです。 そんなわけで、サブルーチンというのは、あるまとまった処理をするコードの集まりです。どうしてこういうものが必要になるかというと、例えば、同じパターンの計算をプログラムのあちこちで何回も何回も実行しなければならない場合というのがあります。このとき、その場所にいちいち同じコードをくり返し書かないといけないとすれば、作業も大変ですし、プログラムも長くなってしまいます。サブルーチンがあれば、これを一カ所にまとめて書いておき、必要なその都度名前で呼び出すことによって、コードを大幅に節約することができるわけです。 ワードの定義 で、このサブルーチンがMopsではワードとよばれるわけです。Mopsの中には、すでにかなりの数のワードが定義されています。これらを組み合わせて、自分で新しいワードをつくることもできます。ワードをつくるときにはその内容を決めることになるので、ワードを定義するといいます。いったん定義されると、はじめから定義されていたものと自分が定義したものとは区別されません。 普通のワードの定義のときにはコロン記号" "で始めます。そのためコロン定義(colon definition)と呼ばれます。そしてワード名、それから内容を書いて、セミコロン記号";"で定義を閉じます。 SUMIMASEN m(_ _)m ; いや、まあ、こんなのはありませんが。すでに定義されているワードを呼び出すには、その名前を書きます。 OWABI SUMIMASEN MOHSHIMASEN YURUSHITE ; 上でコロン記号とセミコロン記号と書きましたが、本当はこれらは単なる記号ではありません。これ自体きちんと定義されているワードで、一文字でできた名前をもつワードなのです。Mopsのワードは半角空白か改行で周囲と区切らなければなりません。逆に一つのワード名は中に空白を含むことはできません。これは、Mopsのワード名をつくるときの数少ない制限の一つで、もう一つは、Mops独特のメソッドとの関係上、ワード名の最後にコロンを使うことはできません。制限はこれだけです。漢字かなも大丈夫でした。ビックリ。 コロン定義するワード名に大文字小文字の区別はありません。実際には、すべて大文字に変換された上で記録されます。 Mops/Forthプログラミングの原則 ワードはできるだけ小さく、細かい作業単位で区切るのが原則です。そのようなワードを少数ずつ組み合わせながら、次第に1ワードの行う現実の作業を複雑化し、抽象化して行きます。この過程は、統合による単純化、明確化の過程であるべきです。理想的には。 ともかく、あまり長~い定義を持つワードは極力つくらない、というのが原則です。このような考え方をすることによって、問題をより明確に把握できる上に、再利用可能性の高いワードをつくることができ、さらには、コードの保守、つまり改訂や修正がしやすくなるということです。あまりキツくは考えず、努力目標ということで良いと思いますが。 サブルーチン呼び出し? -- ちょっと入り組んだ話 サブルーチンを"呼び出す"といいましたが、それはどういうことでしょう。お察しの通り、初回にふれたジャンプをするわけです。つまり、呼んでここに来てもらうというより、サブルーチンのコードがあるところに飛ぶのです。 ただし、実をいうと、このジャンプにも二種類あります。これらは普通、機械語の命令として組み込まれています。 一つ目のジャンプは、本来の意味のジャンプというか、行ったきりになるジャンプです。戻ってくることを考えない、鉄砲玉ジャンプとでもいいますか。この場合、行った先のコードで、そこの部分が完了したらどこに行くという具体的な情報を自前で持っていないといけません。まあ、全プログラムを終了してもいいんですが。 もう一つのジャンプは、ジャンプした先のまとまった処理が終わった後には戻ってくるということを前提としたジャンプです。これは、ジャンプ前にいた場所のコードが、後で戻ってきて欲しい場所の番地(アドレス)を、ジャンプ前に予め保管しておくことで実現されます。飛んで行った先のコードには、そこでのまとまった処理が終わった後具体的にどこに行けばいいのかという情報は書き込まれていません。ですが、戻る場所を格納しておく場所は予め全体として決めておくので、それはわかっているわけです。ですから、終わったらその格納場所を見て、そこに記録されている場所に戻ることになります。 で、サブルーチンの"呼び出し"というのは、後の方のジャンプのことを指します。サブルーチンというのは、作業が終わったら呼び出し元に戻るというのが原則ですから。この「必ず戻ってくる」ということを考えると、"赴き"ではなく"呼び出し"といってもいい気がしてくるのではないかと思います。その"働き"にちょっと一時的に来てもらう、というか、ん~、かえってわかりにくいですかね。ともあれ、この機構は、機械語として組み込まれたこの機構をサブルーチンで利用しているというよりも、ソフトウェアのサブルーチンの機構を実現する手間を省くために機械が対応したものだろうと思います。 Forth環境というのは伝統的に、といいますか、一番はじめから、この"呼び出し"のプロセスを自前で持っていました。つまり、ソフトウェアとして実現していたのです。Mopsはネイティブコード方式なので"呼び出し"は機械語で実装されている方法を使っています。機械に組み込まれた方法を使った方が直接的だから当然速い、と思われるかもしれませんが、実は必ずしも当然じゃないらしいのです。まあ、PowerPCは機械語バージョンの方が速いようですので、Mopsに関しては最も速い方法を採用しているといえます。ところが、ちょっと前の普通のCPU(インテル系とか)だと、そうじゃないらしいのです。 この局面に関しては出来が悪い機械もある、といえないこともないのですが、実は、後からコードを追加していくことができないといけない Forth系の特性も絡んでいまして、どこにどのような形でジャンプするのかによって、標準と違うと予想をしくじったりとか、ひどく手間取ったりするらしいのです。こういう機械では、平均すると、ソフトウェアの方で呼び出しの作業をしてやった方がロスが少なかったりすることもあるのだそうです。最新のものはそうでもないらしいですが。ですから、Forthが特に呼び出しの手順をソフトウェアとして準備していることは、今でも意味はあることらしいです。とくに、コンピュータ科学としてはこの機構を知ることは基本とすべきだともいえますね。ソフトウェアで作ってある結果として操作可能性も高まります。Mopsではこの部分をいじるのは危険ですが、仕組みを理解することはできます。 いずれにせよ、呼び出しというのは、少しではありますが、ベタでコードを実行していく場合よりも手間取るわけです。そのため、 Forthの原則通り細かく細かくサブルーチンを分けてつくると、一般に時間のロスは大きくなるわけです。まあ、サブルーチンの呼び出しの際の余分な手間(オーバーヘッドといいます)というのはジャンプに関するものばかりではありません。C言語などの普通の関数呼び出しでは、その他のオーバーヘッドというのが、かなりあるように思われます(仕組みからの推論 -- パラメターや局所変数の値、その他戻ってくるときまで残しておかなければならない値を全部どこかにしまっておかないといけない。どの程度手間かは機械の仕組みに依存する。)。そうすると、この部分がほとんどないMopsなどでのワードの呼び出しのオーバーヘッドは、他の言語の場合よりも軽くみていいということはいえるわけです。 あまり効率ばかり気にしてもしょうがないのですが、こういうことを考えるのは、コンピュータが実際にどういう風に動かされているのかを意識する結果になるので、一般的には良いことだと思います。観念的な論理の世界だけでプログラミングを思考する、というのも、面白いといえば面白いですけどね。 ワードは基本単位--補遺 このページの内容は、ワードはサブルーチンということで説明してきました。狭い意味でのワードに限れば、これはそれほど外れていないともいえます。しかし、ワードは「プログラムの基本単位」というときには、実はもう少しワードを広く考えています。つまり、名前を付けて呼び出せるものは全てワードだと考えているのです。具体的には、いわゆる関数やプロシジャーに当たるものの他に、変数も含まれます。さらに、Mopsではクラスやオブジェクト(インスタンス)も含まれてきます。このように考えると、Mopsプログラムは、まさにワードから成り立っているのです。先走りで恐縮ですが。 前へ 次へ 目次へ トップページへ
https://w.atwiki.jp/fxext/pages/47.html
Places のコンテキストメニューに項目追加表示非表示の切り替え 右クリックメニューから、選択されてるノードを取得する Places のコンテキストメニューに項目追加 menupopup id="placesContext" menuitem label="サンプル" oncommand="function();" selectiontype="single" selection="bookmark|folder" insertbefore="placesContext_openSeparator"/ /menupopup placesContext は chrome //browser/content/places/placesOverlay.xulに書かれているので、それを overlay してやればいい。 SCRAPBLOG Places 右クリックメニューへのメニュー項目追加 表示非表示の切り替え onpopupshowing なんて使わなくても属性を設定するだけで簡単に表示の切り替えが出来る。places/controller.js に実装されている。 属性 説明 selectiontype single/multiple のいずれか。単数/複数選択で表示 selection 下記の表の値。"|"で複数指定可能。条件が合えば表示 forcehideselection 下記の表の値。"|"で複数指定可能。条件が合えば隠す hideifnoinsetionpoint 値はtrue固定。挿入する場所が無いと隠す。例えばクエリフォルダ内にアイテムの新規作成とか selection や forcehideselection に設定できる値のリスト 値 説明 query nsINavHistoryResultNode で RESULT_TYPE_QUERY host nsINavHistoryQueryOptions で RESULTS_AS_SITE_QUERY day これは RESULTS_AS_DATE_QUER か RESULTS_AS_DATE_SITE_QUERY dynamiccontainer RESULT_TYPE_DYNAMIC_CONTAINER folder フォルダ separator セパレーター link RESULT_TYPE_URI、RESULT_TYPE_VISIT、RESULT_TYPE_FULL_VISIT bookmark ブックマーク microsummary tagChild livemarkChild 右クリックメニューから、選択されてるノードを取得する var view = PlacesUIUtils.getViewForNode(document.popupNode); var node = view.selectedNode; // single の場合 var nodes = view.selectedNodes; // multiple の場合 PlacesUIUtils.getViewForNode が超便利。 view は tree要素。places/tree.xml にプロパティやメソッドが定義されてる。 node はnsINavHistoryResultNode。nodes はその配列。 SCRAPBLOG Places ビューと nsIPlacesView インタフェース Displaying Places information using views | MDN
https://w.atwiki.jp/tianlang/pages/523.html
以下、 http //www.coolwebwindow.com/weblife_column/coolweb/000301.php より引用 ▼ jQueryでスムーススクロール 最近、Webサイトを制作していて必ず要望に入れられるのが「スムーススクロール」です。 あまりJavaScriptに詳しくないので、ライブラリのプラグインばかり使用していたのですが、 jQueryのみでも、スムーススクロールができることを知りました。 jQueryを最近ようやく勉強しはじめて、知ってる人には知っているという内容なので恐縮なのですが、私はあまりというかほとんどと言っていいほど JavaScriptを知りません。たまに作りたいスクリプトがあったら自作とかしますが、全くといっていいほど基礎を知りません。 そういう非プログラマーの強い見方が「jQuery」といったJavaScriptのライブラリです。これにより、かなりJavaScriptの記述が簡単になり、Webデザイナーなど普段プログラムを組まないような人でも、Webサイトによく組み込まれる「ロールオーバー」や「ドロップダウンメニュー」なども簡単に設置できるようになります。 いろいろ便利な使い方が出来るのですが、今回は「スムーススクロール」について述べますね。 JavaScriptのライブラリ JavaScriptのライブラリには以下のようなものがありますが、私はjQueryしか使ったことないです。 * Prototype * jQuery * MooTools jQueryのダウンロード まずは、jQueryをダウンロードします。単純に呼び出すために使うので、ソースコードや改行が省略化されたPRODUCTIONバージョンを選びましょう。 jQuery The Write Less, Do More, JavaScript Library HTMLの記述 HTMLを以下みたいな感じで記述して、jQueryを呼び出します。 HTMLコード !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http //www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" html xmlns="http //www.w3.org/1999/xhtml" xml lang="ja" head meta http-equiv="Content-Type" content="text/html; charset=UTF-8" / meta http-equiv="Content-Script-Type" content="text/javascript" / meta http-equiv="Content-Style-Type" content="text/css" / title テスト /title link rel="stylesheet" type="text/css" media="all" href="common.css" / script src="jquery-1.4.4.min.js" type="text/javascript" /script script src="function.js" type="text/javascript" /script /head body div id="header" ・・・ /div div id="contents" p テキストテキストテキスト /p p テキストテキストテキスト /p p テキストテキストテキスト /p p a id="sample" サンプル /a /p p テキストテキストテキスト /p p テキストテキストテキスト /p p a href="#sample" サンプルへ移動する /a /p div id="#totop" a href="#" ページのトップへ戻る /a /div /div div id="footer" ・・・ /div /body /html スムーススクロール用JavaScript 新規にfunction.jsというJavaScriptファイルを作り、以下のように記述します。ファイル名は何でもよいのですが、WordPress でもそうですし、どうやら関数はfunction.jsといったファイルにまとめて書いたほうがメンテナンスがよい気がします。 JavaScriptコード $(function(){ // #で始まるアンカーをクリックした場合に処理 $( a[href^=#] ).click(function() { // スクロールの速度 var speed = 400;// ミリ秒 // アンカーの値取得 var href= $(this).attr("href"); // 移動先を取得 var target = $(href == "#" || href == "" ? html href); // 移動先を数値で取得 var position = target.offset().top; // スムーススクロール $($.browser.safari ? body html ).animate({scrollTop position}, speed, swing ); return false; }); }); コメントを書いているのでだいたいわかると思いますが、内部リンクは全て#から始まりますので、まず、「$( a[href^=#] ).click(function() 」で最初が#から始まるアンカーをクリックした場合のみ処理が起こるようにします。a[href^=#]というのはCSS3の書き方です。 アンカーの取得は「var href= $(this).attr("href");」という書き方をしていますが、「var href= this.hash;」でも取得できるようです。しかしこの場合、アンカーが#のみであった場合、値がないのですよね。なぜなのかはよくわからないので、 attrで取得するようにしています。 移動先は、#のみの場合htmlタグへ、それ以外はアンカーに記述されているidのところへ、というふうに条件を振っています。 animateでアニメーション効果をつけることができます。 引数は、値を変更したいプロパティ,スピード,動き,コールバック関数、になります。 scrollTop positionで移動先のスクロールの位置を指定します。 speedでスクロールの速度を指定します。単位はミリ秒です。 動きは、linearとswingがあります。linearは直線的な一定の速度で、swingは最初はゆっくりで徐々に早くなります。 コールバック関数はここでは指定していないので割愛します。 ($.browser.safari ? body html )という記述がありますが、ページの戻りを指定する場合、基本的にhtmlタグのところを指定すればよいのですが、なぜかSafariと Chromeはhtmlタグを指定するとスクロールが有効にならないので、bodyタグを範囲にしています。 このスムーススクロールのよい点 いろいろな書き方が出来るのですが、この場合だと、ページのトップへ戻るのも、内部リンクも特別なことをしなくても(クラスを指定したり、戻り値を個別に指定しなくても)スムーススクロールになるので便利です。 あと、このスムーススクロールのいいところは、リンク先のURLにアンカーで指定した文字が付加されないということです。つまり、「http //www.coolwebwindow.com#」というようにならず、「http //www.coolwebwindow.com」のままでスクロールしてくれます。これのいい理由は、検索ページがおかしくならないという点です。 どういうことかというと、つまり、検索ページのURLって大抵引数がついていますよね?それが内部リンクによってさらに引数がついてしまうと、別の検索結果になってしまい、ページの内容がおかしくなってしまいます。それが回避できるのです。 動作確認 WindowsXPのIE6、Firefox3.6.13、Opera10.63、Safari5.0.2、Chrome8.0です。(あれ、いつのまにChromeってバージョン8までいったの?)これらでは全て正常に動作しました。 もっとダイナミックな動きをさせたい場合はプラグインを 今回はjQueryのみで実装しましたが、スムースさ加減が二種類しかないので、スムーススクロール用のプラグインなど読み込めばもっといろいろな動きでスクロールすることができます。 プラグインについては以下などを参考にしてみてください。 ページ内スクロールのjQueryプラグインいろいろ - かちびと.net 参考にしたサイトなど。謝辞。 jQueryでページ内リンクをスムーズスクロールする | TRIPLEXXX jQueryで遊んでみる その7 · CamCam jQueryでアンカーリンクをスムーズスクロールの練習 | 乱雑モックアップ 参考にした書籍 完全カラーですっごいわかりやすいです!初めてjQueryを学ぶなら絶対買いですよ!感謝!
https://w.atwiki.jp/internetkyogakusys/pages/170.html
https://w.atwiki.jp/three-amigos-eg/pages/2.html
メニュー トップページ プラグイン メニュー メニュー2 @ウィキ ガイド @wiki 便利ツール @wiki 更新履歴 取得中です。